package com.bf.electroplating.service;

import com.bf.electroplating.pojo.vo.enterprise.*;
import com.bf.electroplating.pojo.vo.home.EnterpriseDetailVO;
import com.bf.electroplating.pojo.vo.sewageWarningConfig.SewageWarningVO;

import java.util.List;

/**
 * 前端企业级环保管理驾驶舱数据服务接口
 */
public interface IFrontEnterpriseService {

    /**
     * 获取雨水排放口监控数据
     * @return 雨水排放口监控数据VO
     */
    RainwaterMonitoringDataVO getRainwaterMonitoringData();

    /**
     * 获取用电管理数据
     * @return 用电管理数据VO
     */
    PowerManagementDataVO getPowerManagementData();

    /**
     * 获取应急物资库数据
     * @return 应急物资库数据VO
     */
    EmergencySuppliesDataVO getEmergencySuppliesData();

    /**
     * 获取设备数量统计数据
     * @return 设备数量统计数据VO
     */
    EquipmentStatisticsDataVO getEquipmentStatistics();

    /**
     * 获取预警处置数据
     * @return 预警处置数据VO
     */
    AlarmHandlingDataVO getAlarmHandlingData();

    /**
     * 获取废气处理设施数据
     * @return 废气处理设施数据VO
     */
    WasteGasTreatmentDataVO getWasteGasTreatmentData();

    /**
     * 获取危险废物管理数据
     * @return 危险废物管理数据VO
     */
    HazardousWasteManagementDataVO getHazardousWasteManagementData();

    /**
     * 获取应急空间数据
     * @return 应急空间数据VO
     */
    EmergencySpaceDataVO getEmergencySpaceData();

    /**
     * 获取园区企业信息数据
     * @return 园区企业信息数据VO
     */
    ParkEnterpriseInfoDataVO getParkEnterpriseInfoData();

    /**
     * 获取废气处理设施水质检测列表
     * 同一设备有多个检测因子时合并为一条记录
     * @return 废气处理设施水质检测列表VO
     */
    WasteGasMonitoringListVO getWasteGasMonitoringList(String companyId);

    /**
     * 获取雨排口折线图数据
     * 提供PH值和电导率趋势数据，以及闸阀状态信息
     * @return 雨排口折线图数据VO
     */
    RainfallOutletChartVO getRainfallOutletChart(String companyId);

    /**
     * 获取企业废水折线图数据
     * 提供分质分流废水的污染物浓度趋势数据，包括六价铬、总镍、总铬等指标
     * @return 企业废水折线图数据VO
     */
    EnterpriseWastewaterChartVO getEnterpriseWastewaterChart(String waterType, String companyId);

    List<SewageWarningVO> getEnterpriseWastewaterType(String companyId);

    /**
     * 获取预排口废水折线图数据
     * 提供预排口废水的污染物浓度趋势数据，包括含铬沉淀出水、含镍沉淀出水、综合沉淀出水等类型
     * @param waterType 废水类型
     * @return 预排口废水折线图数据VO
     */
    PreDischargeWastewaterChartVO getPreDischargeWastewaterChart(String waterType);

    /**
     * 获取预排口废水类型
     * @return 预排口废水类型列表
     */
    List<PreDischargeWastewaterChartVO.TypeOptionVO> getPreDischargeWastewaterType();

    EnterpriseWastewaterChartVO getEnterpriseWastewaterChartForHomeData(Object o);

    RainfallOutletChartVO getRainfallOutletChartForHomePage();

    List<EnterpriseDetailVO> getEnterpriseDetail(String companyId);
}
